<?php
/**
 * Created by PhpStorm.
 * User: qingyun
 * Date: 18/12/6
 * Time: 下午6:59
 */

namespace app\index\model;


use think\Model;

class Events extends Model
{

    /*获取器的方法会自动执行不用调用
     * 获取器的作用是对模型实例原始数据做出自动处理,一个获取器对应模型的一个特殊方法
     * (该方法必须是public类型),方法命名规范为
     * get+FielName+Attr
     *FileName 必须是驼峰命名法
     * 获取一个已知属性只需要传一个参数即可,如果需要新加属性,则传两个参数,此时第一个参数没有用,第二个参数是当前记录
     * 的所有属性值的一个数组
     * public function getFileNameAttr($x,$y){
     *
     * }
     *
     * 修改器把get换为set,在使用模型的save()方法的时候自动调用,和获取器的使用时间点正好相反
     *
     *
     */
    //获取器获取creatTime截取长度
    public function getCreateTimeAttr($val)
    {
        //截取字符串,去掉创建时间的秒数
        return substr($val,0,16);
    }

    //获取器获取deadline截取长度
    public function getDeadLineAttr($val)
    {
        return substr($val,0,16);
    }

    //对新增加的属性进度条数值进行修改,如果没有这个步骤,index.php文件中的$doing和$done没有progress属性
    public function getProgressAttr($x,$v)
    {
        $startTime = strtotime($v['create_time']);
        $allSecond = strtotime($v['deadline']) - $startTime;
        $usedSecond = time() - $startTime;
        if ($usedSecond > $allSecond) {
            $temp = 100;
        } else {
            //四舍五入取整
            $temp = round($usedSecond / $allSecond * 100);
        }
        return $temp;
    }

    //添加新的属性,newstatus,如果截止日期小于当前时间戳并且处于未完成状态,则是延期状态
    public function getNewstatusAttr($x,$y)
    {
        if (strtotime($y['deadline']) < time() && $y['status'] == 0){
            return true;
        }
    }



}